import { createStore } from 'vuex'

// A模块
const moduleA = {
    state: {
        // 数据
        username: 'moduleA'

    },
    getters: {
        newName(state) {
            return state.username + '!!!'
        }
    }
};
// B模块
const moduleB = {
    // 命名空间 namespaced
    namespaced: true,
    state: {
        // 数据
        username: 'moduleB'
    },
    getters: {
        newName(state) {
            return state.username + '!!!'
        }
    },
    mutations: {
        updateName(state) {
            state.username = 'moduleAAAAAAAAA'
        }
    },
    actions: {
        // 请求数据函数
        update(ctx) {
            setTimeout(() => {
                ctx.commit('updateName')
            }, 2000)
        }
    },
}

// vue2.0 创建仓库 new Vuex.store({})
// vue3.0 创建仓库 createStore()
export default createStore({
    state: {
        // 数据
    },
    getters: {
        // vuex的计算属性
    },
    mutations: {
        // 改数据函数
    },
    actions: {
        // 请求数据函数
    },
    modules: {
        // 分模块
        moduleA,
        moduleB
    }
})